
// paraCFG@UDP 为默认配置(出厂设置)  paraCFG@UDC 为默认配置区。为保证两个默认配置一致，故在此处统一初始化

	#if defined(UDP_CFG_ENABLE)
	.paraANA.ana1.ana_cfg0   = UDPCFG_ANA1_CFG0,
	.paraANA.ana1.ana_cfg1   = UDPCFG_ANA1_CFG1,
	.paraANA.ana1.ana_cfg2   = UDPCFG_ANA1_CFG2,
  
	.paraANA.ana2.ana_cfg0   = UDPCFG_ANA2_CFG0,
	.paraANA.ana2.ana_cfg1   = UDPCFG_ANA2_CFG1,
	.paraANA.ana2.ana_cfg2   = UDPCFG_ANA2_CFG2,
  
	.paraANA.ana3.ana_cfg0   = UDPCFG_ANA3_CFG0,
	.paraANA.ana3.ana_cfg1   = UDPCFG_ANA3_CFG1,
	.paraANA.ana3.ana_cfg2   = UDPCFG_ANA3_CFG2,
  
	.paraANA.ana4.ana_cfg0   = UDPCFG_ANA4_CFG0,
	.paraANA.ana4.ana_cfg1   = UDPCFG_ANA4_CFG1,
	.paraANA.ana4.ana_cfg2   = UDPCFG_ANA4_CFG2,

#if 0
	.paraANA.ramp_pll_cfg    = UDPCFG_RAMP_PLL,       //freq start  24.01G
	.paraANA.ramp_syncw_cfg  = UDPCFG_SYNCW,          //sync  3210
	.paraANA.ramp_chirpw_cfg = UDPCFG_CHIRPW,         //acc   210
	.paraANA.ramp_wm_cfg0    = UDPCFG_RAMP_WM,        //circle mode

	.paraANA.ramp_mem03      = UDPCFG_RAMP_WAVE0_A,   //A: 10us     0G  
	.paraANA.ramp_mem02      = UDPCFG_RAMP_WAVE0_B,   //B: 30us  0.22G
	.paraANA.ramp_mem01      = UDPCFG_RAMP_WAVE0_C,   //c: 30us -0.22G
	.paraANA.ramp_mem00      = UDFDEF_RAMP_WAVE0_R,

	.paraANA.ramp_mem13      = UDPCFG_RAMP_WAVE1_A,   //A:  10us     0G
	.paraANA.ramp_mem12      = UDPCFG_RAMP_WAVE1_B,   //B: 110us  0.22G
	.paraANA.ramp_mem11      = UDPCFG_RAMP_WAVE1_C,   //c:  30us -0.22G
	.paraANA.ramp_mem10      = UDFDEF_RAMP_WAVE1_R,
#endif
	.paraANA.crcLen          = sizeof(PARAM_ANA_VENUS)-4,
	.paraANA.crcVal          = UDP_ANA_CRC,


	/************************************paramDataPrep***************************************/
#if 0
	#if UDFDEF_ANT_NUM > 1
	.paraDataPrep.calibAnt2_r            = UDFDEF_ANT2_CALIB_R,							
	.paraDataPrep.calibAnt2_i            = UDFDEF_ANT2_CALIB_I,
	#endif

	.paraDataPrep.angleDstAddr           = GET_OFFSET(UDFDEF_ADDR_ANGLE_ARRAY),
	.paraDataPrep.angleFlashLen          = NUM_ANGLE * UDFDEF_ANT_NUM * NUM_BYTE32,

	.paraDataPrep.winRange.len           = UDFDEF_ADCSAMP_NUM,
	.paraDataPrep.winRange.srcInc        = 2 * 256 / UDFDEF_ADCSAMP_NUM,
	.paraDataPrep.winRange.dstOffsetAddr = GET_OFFSET(UDFDEF_ADDR_WIN_RANGE),
	.paraDataPrep.winRange.dstInc        = 2,

	.paraDataPrep.winVel.len             = UDFDEF_CHIRP_NUM,
	.paraDataPrep.winVel.dstOffsetAddr   = GET_OFFSET(UDFDEF_ADDR_WIN_VEL), 
	.paraDataPrep.winVel.srcInc          = 2 * 256 / UDFDEF_CHIRP_NUM,
	.paraDataPrep.winVel.dstInc          = 2,

	#if (UDFDEF_ANT_NUM > 1) && !defined(RADAR_USE_ANT1_AND_ANT2)
	#if !defined(FLASH_WINRANGE) && !defined(FLASH_WINVEL)
	.paraDataPrep.constEn = CONST_WINRANGE_EN|CONST_WINVEL_EN|CONST_ANGLE_EN,
	#elif !defined(FLASH_WINRANGE)
	.paraDataPrep.constEn = CONST_WINRANGE_EN|CONST_ANGLE_EN,
	#elif !defined(FLASH_WINVEL)
	.paraDataPrep.constEn = CONST_WINVEL_EN|CONST_ANGLE_EN,
	#else
	.paraDataPrep.constEn = CONST_ANGLE_EN,
	#endif
	#else
	#if !defined(FLASH_WINRANGE) && !defined(FLASH_WINVEL)
	.paraDataPrep.constEn = CONST_WINRANGE_EN|CONST_WINVEL_EN,
	#elif !defined(FLASH_WINRANGE)
	.paraDataPrep.constEn = CONST_WINRANGE_EN,
	#elif !defined(FLASH_WINVEL)
	.paraDataPrep.constEn = CONST_WINVEL_EN,
	#else
	.paraDataPrep.constEn = 0,
	#endif
	#endif

	#if SDK_VERSION < SDK_VERSION_GENE(3,0)
	.paraDataPrep.constFlashEn = 0,
	#endif

	.paraDataPrep.prepCfg0 = UDPCFG_DP_CFG0,
	.paraDataPrep.prepCfg1 = UDPCFG_DP_CFG1,
	.paraDataPrep.prepCfg2 = UDPCFG_DP_CFG2,

	.paraDataPrep.cycleNum = UDFDEF_CYCLE_NUM,
#endif
	.paraDataPrep.crcLen = sizeof(PARAM_DATAPREP) - 4,
	.paraDataPrep.crcVal = UDP_DATAPREP_CRC,
		
	/*************************************************paramALG***********************************/

	#if SDK_VERSION < SDK_VERSION_GENE(3,0)
	.paraALG.algEn  = 0,
	.paraALG.copyEn = 0,
	.paraALG.copyFlashEn = 0,
	#endif
	.paraALG.crcLen = sizeof(PARAM_ALGORITHM)-4,
	.paraALG.crcVal = UDP_ALG_CRC,
	/******************************************************************************/
	
	/**************************************paramFunc*************************/
	#if SDK_VERSION >= SDK_VERSION_GENE(3,0)
	.paraFunc.udf01_info.srcAddr = UDF01_SRC_ADDR, // 专用
	.paraFunc.udf01_info.dstAddr = UDF_DST_ADDR + UDF01_OFFSET,
	.paraFunc.udf01_info.len = UDP_UDF_LEN(01),
	.paraFunc.udf01_info.crc = UDP_UDF_CRC(01),

	.paraFunc.udf02_info.srcAddr = UDF02_SRC_ADDR, // 专用
	.paraFunc.udf02_info.dstAddr = UDF_DST_ADDR + UDF02_OFFSET,
	.paraFunc.udf02_info.len     = UDP_UDF_LEN(02),
	.paraFunc.udf02_info.crc     = UDP_UDF_CRC(02),


	.paraFunc.udf03_info.srcAddr = UDF03_SRC_ADDR, // 固定回调点
	.paraFunc.udf03_info.dstAddr = UDF_DST_ADDR + UDF03_OFFSET,
	.paraFunc.udf03_info.len     = UDP_UDF_LEN(03),
	.paraFunc.udf03_info.crc     = UDP_UDF_CRC(03),

	.paraFunc.udf04_info.srcAddr = UDF04_SRC_ADDR, // 固定回调点
	.paraFunc.udf04_info.dstAddr = UDF_DST_ADDR + UDF04_OFFSET,
	.paraFunc.udf04_info.len     = UDP_UDF_LEN(04),
	.paraFunc.udf04_info.crc     = UDP_UDF_CRC(04),
	

	.paraFunc.udf05_info.srcAddr = UDF05_SRC_ADDR,// UDF05~UDF14通用
	.paraFunc.udf05_info.dstAddr = UDF_DST_ADDR + UDF05_OFFSET,
	.paraFunc.udf05_info.len     = UDP_UDF_LEN(05),
	.paraFunc.udf05_info.crc     = UDP_UDF_CRC(05),

	.paraFunc.udf06_info.srcAddr = UDF06_SRC_ADDR,// UDF05~UDF14通用
	.paraFunc.udf06_info.dstAddr = UDF_DST_ADDR + UDF06_OFFSET,
	.paraFunc.udf06_info.len     = UDP_UDF_LEN(06),
	.paraFunc.udf06_info.crc     = UDP_UDF_CRC(06),
	
	.paraFunc.udf07_info.srcAddr = UDF07_SRC_ADDR,// UDF05~UDF14通用
	.paraFunc.udf07_info.dstAddr = UDF_DST_ADDR + UDF07_OFFSET,
	.paraFunc.udf07_info.len     = UDP_UDF_LEN(07),
	.paraFunc.udf07_info.crc     = UDP_UDF_CRC(07),
	
	.paraFunc.udf08_info.srcAddr = UDF08_SRC_ADDR,// UDF05~UDF14通用
	.paraFunc.udf08_info.dstAddr = UDF_DST_ADDR + UDF08_OFFSET,
	.paraFunc.udf08_info.len     = UDP_UDF_LEN(08),
	.paraFunc.udf08_info.crc     = UDP_UDF_CRC(08),
	
	.paraFunc.udf09_info.srcAddr = UDF09_SRC_ADDR,// UDF05~UDF14通用
	.paraFunc.udf09_info.dstAddr = UDF_DST_ADDR + UDF09_OFFSET,
	.paraFunc.udf09_info.len     = UDP_UDF_LEN(09),
	.paraFunc.udf09_info.crc     = UDP_UDF_CRC(09),

	.paraFunc.udf10_info.srcAddr = UDF10_SRC_ADDR,// UDF05~UDF14通用
	.paraFunc.udf10_info.dstAddr = UDF_DST_ADDR + UDF10_OFFSET,
	.paraFunc.udf10_info.len     = UDP_UDF_LEN(10),
	.paraFunc.udf10_info.crc     = UDP_UDF_CRC(10),

	.paraFunc.udf11_info.srcAddr = UDF11_SRC_ADDR,// UDF05~UDF14通用
	.paraFunc.udf11_info.dstAddr = UDF_DST_ADDR + UDF11_OFFSET,
	.paraFunc.udf11_info.len     = UDP_UDF_LEN(11),
	.paraFunc.udf11_info.crc     = UDP_UDF_CRC(11),

	.paraFunc.udf12_info.srcAddr = UDF12_SRC_ADDR,// UDF05~UDF14通用
	.paraFunc.udf12_info.dstAddr = UDF_DST_ADDR + UDF12_OFFSET,
	.paraFunc.udf12_info.len     = UDP_UDF_LEN(12),
	.paraFunc.udf12_info.crc     = UDP_UDF_CRC(12),

	.paraFunc.udf13_info.srcAddr = UDF13_SRC_ADDR,// UDF05~UDF14通用,UDF13可选运行于BBSRAM
	#if defined(UDF13_AT_BB_SRAM)
	.paraFunc.udf13_info.dstAddr = UDF13_AT_BB_SRAM_ADDR + UDF13_OFFSET,
	#else
	.paraFunc.udf13_info.dstAddr = UDF_DST_ADDR + UDF13_OFFSET,
	#endif
	.paraFunc.udf13_info.len     = UDP_UDF_LEN(13),
	.paraFunc.udf13_info.crc     = UDP_UDF_CRC(13),

	.paraFunc.udf14_info.srcAddr = UDF14_SRC_ADDR, // UDF05~UDF14通用
	.paraFunc.udf14_info.dstAddr = UDF_DST_ADDR + UDF14_OFFSET,
	.paraFunc.udf14_info.len     = UDP_UDF_LEN(14),
	.paraFunc.udf14_info.crc     = UDP_UDF_CRC(14),

	.paraFunc.udf15_info.srcAddr = UDF15_SRC_ADDR, // 专用
	.paraFunc.udf15_info.dstAddr = UDF15_DST_ADDR,
	.paraFunc.udf15_info.len     = UDP_UDF_LEN(15),
	.paraFunc.udf15_info.crc     = UDP_UDF_CRC(15),

	.paraFunc.udf16_info.srcAddr = UDF16_SRC_ADDR, // 中断专用
	.paraFunc.udf16_info.dstAddr = UDF16_DST_ADDR,
	.paraFunc.udf16_info.len     = UDP_UDF_LEN(16),
	.paraFunc.udf16_info.crc     = UDP_UDF_CRC(16),
	#else
	.paraFunc.udf01_addr.srcAddr = UDF01_SRC_ADDR,
	.paraFunc.udf01_addr.dstAddr = UDF_DST_ADDR + UDF01_OFFSET,
	.paraFunc.udf01_len          = UDP_UDF_LEN(01),

	.paraFunc.udf02_addr.srcAddr = UDF02_SRC_ADDR,
	.paraFunc.udf02_addr.dstAddr = UDF_DST_ADDR + UDF02_OFFSET,
	.paraFunc.udf02_len          = UDP_UDF_LEN(02),


	.paraFunc.udf03_addr.srcAddr = UDF03_SRC_ADDR,
	.paraFunc.udf03_addr.dstAddr = UDF_DST_ADDR + UDF03_OFFSET,
	.paraFunc.udf03_len          = UDP_UDF_LEN(03),

	.paraFunc.udf04_addr.srcAddr = UDF04_SRC_ADDR,
	.paraFunc.udf04_addr.dstAddr = UDF_DST_ADDR + UDF04_OFFSET,
	.paraFunc.udf04_len          = UDP_UDF_LEN(04),
	

	.paraFunc.udf05_addr.srcAddr = UDF05_SRC_ADDR,
	.paraFunc.udf05_addr.dstAddr = UDF_DST_ADDR + UDF05_OFFSET,
	.paraFunc.udf05_len          = UDP_UDF_LEN(05),


	.paraFunc.udf06_addr.srcAddr = UDF06_SRC_ADDR,
	.paraFunc.udf06_addr.dstAddr = UDF_DST_ADDR + UDF06_OFFSET,
	.paraFunc.udf06_len          = UDP_UDF_LEN(06),
	
	.paraFunc.udf07_addr.srcAddr = UDF07_SRC_ADDR,
	.paraFunc.udf07_addr.dstAddr = UDF_DST_ADDR + UDF07_OFFSET,
	.paraFunc.udf07_len          = UDP_UDF_LEN(07),
	
	.paraFunc.udf08_addr.srcAddr = UDF08_SRC_ADDR,
	.paraFunc.udf08_addr.dstAddr = UDF_DST_ADDR + UDF08_OFFSET,
	.paraFunc.udf08_len          = UDP_UDF_LEN(08),
	
	.paraFunc.udf09_addr.srcAddr = UDF09_SRC_ADDR,
	.paraFunc.udf09_addr.dstAddr = UDF_DST_ADDR + UDF09_OFFSET,
	.paraFunc.udf09_len          = UDP_UDF_LEN(09),

	.paraFunc.udf10_addr.srcAddr = UDF10_SRC_ADDR,
	.paraFunc.udf10_addr.dstAddr = UDF_DST_ADDR + UDF10_OFFSET,
	.paraFunc.udf10_len          = UDP_UDF_LEN(10),

	.paraFunc.udf11_addr.srcAddr = UDF11_SRC_ADDR,
	.paraFunc.udf11_addr.dstAddr = UDF_DST_ADDR + UDF11_OFFSET,
	.paraFunc.udf11_len          = UDP_UDF_LEN(11),

	.paraFunc.udf12_addr.srcAddr = UDF12_SRC_ADDR,
	.paraFunc.udf12_addr.dstAddr = UDF_DST_ADDR + UDF12_OFFSET,
	.paraFunc.udf12_len          = UDP_UDF_LEN(12),

	.paraFunc.udf13_addr.srcAddr = UDF13_SRC_ADDR,
	#if defined(UDF13_AT_BB_SRAM)
	.paraFunc.udf13_addr.dstAddr = UDF13_AT_BB_SRAM_ADDR + UDF13_OFFSET,
	#else
	.paraFunc.udf13_addr.dstAddr = UDF_DST_ADDR + UDF13_OFFSET,
	#endif
	.paraFunc.udf13_len          = UDP_UDF_LEN(13),

	.paraFunc.udf14_addr.srcAddr = UDF14_SRC_ADDR,
	.paraFunc.udf14_addr.dstAddr = UDF_DST_ADDR + UDF14_OFFSET,
	.paraFunc.udf14_len          = UDP_UDF_LEN(14),

	.paraFunc.udf15_addr.srcAddr = UDF15_SRC_ADDR,
	.paraFunc.udf15_addr.dstAddr = UDF_DST_ADDR + UDF15_OFFSET,
	.paraFunc.udf15_len          = UDP_UDF_LEN(15),

	.paraFunc.udf16_addr.srcAddr = UDF16_SRC_ADDR,
	.paraFunc.udf16_addr.dstAddr = UDF_DST_ADDR + UDF16_OFFSET,
	.paraFunc.udf16_len          = UDP_UDF_LEN(16),
	#endif
	
	//*******************************************************************************************************
	.paraFunc.udfEn        = UDF_EN,
	
	#if SDK_VERSION >= SDK_VERSION_GENE(3,0)
	.paraFunc.qspiMode     = FLASH_INTERFACE,
	#else
	#if FLASH_INTERFACE < eQSPI_FLASH_QUAD_IO
	.paraFunc.qspiMode     = 0,	// 0:single-line  1:4-line
	#else
	.paraFunc.qspiMode     = 1,	// 0:single-line  1:4-line
	#endif
	#endif

	.paraFunc.rtcCailbClkCnt   = 8,	 // 8 16 32 64 128	

	#if (UART_BAUDRATE == 0) && (SDK_VERSION >= SDK_VERSION_GENE(3,0)) // ROMv2不支持关闭串口
	.paraFunc.use_uart         = 0,
	#elif UART_BAUDRATE == 1  
	.paraFunc.baudrate         = 2000000,
	#elif UART_BAUDRATE == 2  
	.paraFunc.baudrate         = 115200,
	#else  
	#error xxx
	#endif
	.paraFunc.AtCmdDelay       = AT_WAIT_MS,

	.paraFunc.wdt_cnt          = WDT_TIMEOUT_MS*32, // 1=31.25us   32K clock,  64000=2s 160000=5s

	/* 默认PIN配置 */
	#if 1
	
	#if UART_BAUDRATE > 0
		.paraFunc.gpio_pmode     = 0x00000000,
		.paraFunc.gpio_pctrl_ue  = 0x000021C0,
		.paraFunc.gpio_pctrl_re  = 0x0000FFFE,     // all pull-up or pull-down but gpio0.0

		.paraFunc.gpio_pmux0     = 0x11000000,	   // usci1
		#if IS_RAMAPP > 0
		.paraFunc.gpio_pmux1     = 0x00000000,	   // qspi
		#else
		.paraFunc.gpio_pmux1     = 0x00666666,	   // qspi
		#endif
	#else
		.paraFunc.gpio_pmode     = 0x00000000,
		.paraFunc.gpio_pctrl_ue  = 0x00002100,
		.paraFunc.gpio_pctrl_re  = 0x0000FFFE,

		.paraFunc.gpio_pmux0     = 0x00000000,
		#if IS_RAMAPP > 0
		.paraFunc.gpio_pmux1     = 0x00000000,	   // qspi
		#else
		.paraFunc.gpio_pmux1     = 0x00666666,	   // qspi
		#endif
	#endif
	
	#endif


	.paraFunc.ab_area_offset   = OTA_SIZE_MAX,	

	.paraFunc.crcLen           = sizeof(PARAM_FUNC)-4,
	.paraFunc.crcVal           = UDP_FUNC_CRC,
	
	#if SDK_VERSION >= SDK_VERSION_GENE(3,0)
	.paraFunc.fw_version       = {FW_VERSION},
	.paraFunc.dl_flag          = IS_RAMAPP,   // 0：非动态加载，其它：动态加载	
	.paraRT.startup_flag       = 1,
	.paraRT.switch_flag        = 0,
	.paraRT.ab_app_flag        = 0,
	.paraRT.ab_cfg_flag        = 0,
	.paraRT.frame_cnt          = 0,
	.paraRT.sn                 = 0,

	.paraRT.frame_intv_ms      = 100*0.94,  // 本demo 未使用该值，会被 .paraCFG.frame_interval_default、.paraCFG.frame_interval_no_target覆盖
	
	.paraFunc.opt_data_len     = 0,
	.paraFunc.opt_data_crc     = 0,
	
	.paraRT.crcLen             = sizeof(PARAM_RUNTIME)-4,
	.paraRT.crcVal             = UDP_RT_CRC,
	
	.paraFunc.funcEn           = FUNC_CRC_UDP_EN|FUNC_CRC_UDF_EN|FUNC_RTC_CALIB_DIS|FUNC_CRC_UDP_USR_CFG_EN|FUNC_VERSION_OUTPUT_EN,
	
	#else
	.paraFunc.funcEn           = FUNC_PROTOCOL_DIS|FUNC_DEBUG_DIS|FUNC_RTC_CALIB_DIS|FUNC_CRC_PATCH_EN|FUNC_SPI1_00_DIS,
	// 此处后的变量在romv3中已移除，udkv2.1的应用中也应不再调用，以便于后期升级移植。
	.paraFunc.frameT0_msec     = 0,
	.paraFunc.frameT1_msec     = 0,
	.paraFunc.uartOutputAddr   = 0,
	.paraFunc.uartDebugAddr    = 0,
	.paraFunc.uartDebugLen     = 0,
	.paraFunc.rangeIdxTh       = 128,
	.paraFunc.numTLVs          = 0,
	
	.paraFunc.uartDebugMode    = 0,
	.paraFunc.ab_area_flag     = 0,
	.paraFunc.spi1_baudDiv     = 0,
	.paraFunc.rtcCailbFrameCnt = 0,
	.paraFunc.pro_func         = 2,
	.paraFunc.rsv_crc          = UDP_CFG_CRC,
	#endif
	#endif
	
	#if defined(USR_CFG_ENABLE)

	#if SDK_VERSION < SDK_VERSION_GENE(3,0)
	// udkv3新增变量
	.paraRT.fw_version         = {FW_VERSION},
	.paraRT.dl_flag            = IS_RAMAPP,// 0:非动态加载，其它：动态加载

	.paraRT.startup_flag       = 1,
	.paraRT.switch_flag        = 0,
	.paraRT.ab_app_flag        = 0,
	.paraRT.ab_cfg_flag        = 0,
	.paraRT.frame_cnt          = 0,
	.paraRT.sn                 = 0,
	
	.paraRT.frame_intv_ms      = FRAME_INTV_MS*0.94,
	#endif

	.paraCFG.crcLen            = sizeof(PARAM_CFG)-4,
	.paraCFG.crcVal            = UDP_CFG_CRC,
	#endif
